
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
int main()
{
	float width, height, gravity;//游戏画面大小，重力加速度
	float ball_x, ball_y, ball_vy, radius;//小球圆心坐标，y方向速度，半径大小
	float rect_left_x, rect_top_y, rect_width, rect_height, rect_vx;//方块障碍的相关参数
	int score = 0;
	float kong=100;

	width = 600;//游戏画面宽度
	height = 500;//游戏画面高度
	gravity = 0.6;//重力加速度
	initgraph(width, height);//新建一个画布

	radius = 20;//小球半径
	ball_x = width / 4;//小球x位置
	ball_y = height - radius;//小球y位置
	ball_vy = 0;//小球初始y速度为0


	rect_height = 100;//方块高度
	rect_width = 20;//方块宽度
	rect_left_x = width * 3 / 4;//方块左边x坐标
	rect_top_y = height - rect_height;//方块顶部y坐标
	rect_vx = -3;//方块x方向速度

	while (1)	

		if (_kbhit())//当按键时//kbhit()改为_kbhit()
		{
			char input = _getch();//获得输入字符
			if (input == ' ')//当按下空格时，并且小球在地面上
			{
				ball_vy = -8;//给小球有向上的速度
			}
		}

		ball_vy = ball_vy + gravity;//根据重力加速度更新小球y方向的速度
		ball_y = ball_y + ball_vy;//根据小球y方向速度更新y坐标
		if (ball_y >= height - radius)//如果小球落到地面上
		{
			ball_vy = 0;//y速度为0
			ball_y = height - radius;//规范其y坐标，避免落到地面下面
		}

		rect_left_x = rect_left_x + rect_vx;//方块左移
		if (rect_left_x <= 0)//如果方块到最左边
		{
			score = score++;
			rect_left_x = width;//在最右边重新出现
			rect_height = rand() % 300+0;//设置随机高度
			rect_vx = rand() / float(RAND_MAX) * 4 - 7;//设置方块的随机速度
		kong = rand() % 200 + 120;
		}

		//如果碰到小球上
		if ((rect_left_x <= ball_x + radius)
			&& (rect_left_x + rect_width >= ball_x - radius)
			&& (height - rect_height-kong >= ball_y - radius))
		{
			score = 0;

			Sleep(80);//慢动作效果
		}
		//如果触碰下
	    if ((rect_left_x <= ball_x + radius)
			&& (rect_left_x + rect_width >= ball_x - radius)
			&& (height - rect_height <= ball_y + radius))
		{
			score = 0;

			Sleep(80);//慢动作效果
		}

		cleardevice();//清空画面
		fillcircle(ball_x, ball_y, radius);//绘制小球
		//画方块
		fillrectangle(rect_left_x, height - rect_height, rect_left_x + rect_width, height);//xia
		fillrectangle(rect_left_x, height - rect_height-kong, rect_left_x + rect_width, 0);//shang
		TCHAR s[20];//设置字符串数组
		swprintf_s(s, _T("%d"), score);//将score转化为字符串//将_stprintf()改为swprintf_s()
		settextstyle(40, 0, _T("宋体"));//设置文字大小，字体
		outtextxy(50, 30, s);//输出得分文字

		Sleep(10);//暂停10毫秒
	}
	closegraph();
	return 0;
}